package com.springboot.frame.comm.domain;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Set;

/**
 * @author madman
 */
@Data
public final class Column {

  /**
   * 是否是主键
   */
  private Boolean isPrimaryKey = false;

  /**
   * 数据库名称
   */
  private String jdbcName;

  /**
   * 数据库类型
   */
  private String jdbcType;
  /**
   * 数据库注释
   */
  private String comment;
  /**
   * java名称
   */
  private String property;
  /**
   * java类型class
   */
  private Class<?> propertyType;
  /**
   * 首字母大写的java名称
   */
  private String capitalProperty;
  /**
   * 是否有column注解
   */
  private Boolean isColumnAnnotation = false;
  /**
   * 是否可以为null
   */
  private Boolean isNullAble;

  public void setIsColumnAnnotation(Boolean isColumnAnnotation, Set<String> importPackages) {
    this.isColumnAnnotation = isColumnAnnotation;
    if (isColumnAnnotation) {
      importPackages.add("javax.persistence.Column");
    }
  }

  public void setPropertyType(Class<?> propertyType, Set<String> importPackages) {
    this.propertyType = propertyType;
    if (Date.class.equals(propertyType)) {
      importPackages.add("java.util.Date");
    } else if (BigDecimal.class.equals(propertyType)) {
      importPackages.add("java.math.BigDecimal");
    }
  }

}
